package interfaz;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JRadioButton;

import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;

import representacion.ExtrasFinca;
import representacion.Usuario;


public class FormularioRegistro3 extends javax.swing.JFrame {

	private Usuario usuario;
	private FormularioIngreso formIngreso;
	
	private JRadioButton rbAscensor;
	private JRadioButton rbTrastero;
	private JRadioButton rbParkingComunitario;
	private JRadioButton rbGarajePrivado;
	private JButton botonTerminar;
	private JButton botonSiguiente;
	private JButton botonCancelar;
	private JRadioButton rbVideoportero;
	private JRadioButton rbServPorteria;
	private JRadioButton rbEnergiaSolar;
	
	public FormularioRegistro3(Usuario usuario,FormularioIngreso formIngreso) {
	    super();
		this.formIngreso = formIngreso;
		this.usuario = usuario;
		initGUI();
		setDefaultCloseOperation(0); //Para que no se pueda cerrar haciendo click en la X
		this.setLocationRelativeTo(null);
		this.setVisible(true);
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			this.setTitle("Extras finca");
			getContentPane().setLayout(null);
			{
				rbAscensor = new JRadioButton();
				getContentPane().add(rbAscensor);
				rbAscensor.setText("Ascensor");
				rbAscensor.setBounds(80, 24, 108, 20);
			}
			{
				rbTrastero = new JRadioButton();
				getContentPane().add(rbTrastero);
				rbTrastero.setText("Trastero");
				rbTrastero.setBounds(241, 24, 118, 20);
			}
			{
				rbEnergiaSolar = new JRadioButton();
				getContentPane().add(rbEnergiaSolar);
				rbEnergiaSolar.setText("Energia Solar");
				rbEnergiaSolar.setBounds(401, 24, 138, 20);
			}
			{
				rbServPorteria = new JRadioButton();
				getContentPane().add(rbServPorteria);
				rbServPorteria.setText("Servicio de porteria");
				rbServPorteria.setBounds(587, 24, 178, 20);
			}
			{
				rbParkingComunitario = new JRadioButton();
				getContentPane().add(rbParkingComunitario);
				rbParkingComunitario.setText("Parking Comunitario");
				rbParkingComunitario.setBounds(62, 71, 170, 20);
			}
			{
				rbGarajePrivado = new JRadioButton();
				getContentPane().add(rbGarajePrivado);
				rbGarajePrivado.setText("Garaje Privado");
				rbGarajePrivado.setBounds(307, 71, 162, 20);
			}
			{
				rbVideoportero = new JRadioButton();
				getContentPane().add(rbVideoportero);
				rbVideoportero.setText("Videoportero");
				rbVideoportero.setBounds(521, 71, 166, 20);
			}
			{
				botonCancelar = new JButton();
				botonCancelar.addActionListener (new ActionListener (){
					   public void actionPerformed (ActionEvent e){
						   setVisible(false);
						   formIngreso.resetUsuario();
						   formIngreso.setVisible(true);
					   } 
				});	
				getContentPane().add(botonCancelar);
				botonCancelar.setText("Cancelar");
				botonCancelar.setBounds(203, 185, 93, 23);
			}
			{
				botonSiguiente = new JButton();
				botonSiguiente.addActionListener (new ActionListener (){
					   public void actionPerformed (ActionEvent e){
						  usarDatos("Siguiente");
					   } 
				});
				getContentPane().add(botonSiguiente);
				botonSiguiente.setText("Siguiente ->");
				botonSiguiente.setBounds(368, 185, 131, 23);
			}
			{
				botonTerminar = new JButton();
				botonTerminar.addActionListener (new ActionListener (){
					   public void actionPerformed (ActionEvent e){
						  usarDatos("Terminar");
					   } 
				});
				getContentPane().add(botonTerminar);
				botonTerminar.setText("Terminar");
     			botonTerminar.setBounds(549, 185, 114, 23);
			}
			pack();
			this.setSize(799, 300);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
	}
	
	private void usarDatos(String accion){
		Usuario u = usuario;
		ExtrasFinca ef = new ExtrasFinca(0);
		ef.setAscensor(rbAscensor.isSelected());
		ef.setEnergiaSolar(rbEnergiaSolar.isSelected());
		ef.setGarajePrivado(rbGarajePrivado.isSelected());
		ef.setParkingComunitario(rbParkingComunitario.isSelected());
		ef.setServPorteria(rbServPorteria.isSelected());
		ef.setTrastero(rbTrastero.isSelected());
		ef.setVideoportero(rbVideoportero.isSelected());
		u.setExtrasFinca(ef);
		usuario = u;
		if(accion.equals("Terminar")){
	       	setVisible(false);
        	formIngreso.annadirUsuario(usuario);
        	formIngreso.setVisible(true);
		}
		else{
        	mostrarFormularioRegistro4();			
		}
	}

	
	public void mostrarFormularioRegistro4(){
		this.setVisible(false);
		FormularioRegistro4 formReg4 = new FormularioRegistro4(usuario,formIngreso);
		formReg4.setVisible(true);
	}
}
